// 二叉树的遍历
package main

import (
    "learn/btree"
    "fmt"
)

func main() {
    // 创建二叉树
    root := btree.NewNode(nil, nil)
    root.SetData("root node")
    a := btree.NewNode(nil, nil)
    a.SetData("left node")
    al := btree.NewNode(nil, nil)
    al.SetData(100)
    ar := btree.NewNode(nil, nil)
    ar.SetData(3.14)
    a.Left = al
    a.Right = ar
    b := btree.NewNode(nil, nil)
    b.SetData("right node")
    root.Left = a
    root.Right = b
    // 使用Order接口实现对二叉树的遍历
    var it btree.Order
    it = root
    it.PreOrder() // 先序遍历
    fmt.Println()
    it.InOrder() // 中序遍历
    fmt.Println()
    it.PostOrder() // 后序遍历
}
